package POJOs;

import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "usuarios")
public class ClientePOJO implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer id;
	private String nombre;
	private String apellidos;
	private String email;
	private String contrasena;
	private String telefono;
	private String sector;
	private String departamento;

	private CiudadPOJO ciudada;
	private String centroa;	

	private String estado;
	
	private String uidClienteNuevo;     //Random Mail ID para activar el nuevo cliente
	private String uidCambioContrasena; //Random Mail ID para Cambio Contrasena


	public ClientePOJO() {}

	public ClientePOJO(String nombre, String apellidos, String email, String contrasena, String telefono, String sector, 
					   String departamento, CiudadPOJO ciudada, String centroa, String estado, String uidClienteNuevo, String uidCambioContrasena) {
		this.nombre = nombre;
		this.apellidos = apellidos;
		this.email = email;
		this.contrasena = contrasena;
		this.telefono = telefono;
		this.sector = sector;
		this.departamento = departamento;
		this.ciudada = ciudada;
		this.centroa = centroa;		
		this.estado = estado;
		this.uidClienteNuevo = uidClienteNuevo;
		this.uidCambioContrasena = uidCambioContrasena;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}
	public void setId(Integer id) {
		this.id = id;
	}

	@Column(name = "nombre", length = 45)
	public String getNombre() {
		return this.nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "apellidos", length = 45)
	public String getApellidos() {
		return this.apellidos;
	}
	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}

	@Column(name = "email", length = 45)
	public String getEmail() {
		return this.email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	@Column(name = "contrasena", length = 45)
	public String getContrasena() {
		return this.contrasena;
	}
	public void setContrasena(String contrasena) {
		this.contrasena = contrasena;
	}

	@Column(name = "telefono", length = 45)
	public String getTelefono() {
		return this.telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	
	@Column(name = "sector", length = 45)
	public String getSector() {
		return this.sector;
	}
	public void setSector(String sector) {
		this.sector = sector;
	}

	@Column(name = "departamento", length = 45)
	public String getDepartamento() {
		return this.departamento;
	}
	public void setDepartamento(String departamento) {
		this.departamento = departamento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="ciudada")
	public CiudadPOJO getCiudada() {
		return this.ciudada;
	}
	public void setCiudada(CiudadPOJO ciudada) {
		this.ciudada = ciudada;
	}

	@Column(name = "centroa", length = 45)
	public String getCentroa() {
		return this.centroa;
	}
	public void setCentroa(String centroa) {
		this.centroa = centroa;
	}
	
	@Column(name = "estado", length = 45)
	public String getEstado() {
		return this.estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}

	@Column(name = "uidClienteNuevo", length = 45)
	public String getUidClienteNuevo() {
		return uidClienteNuevo;
	}
	public void setUidClienteNuevo(String uidClienteNuevo) {
		this.uidClienteNuevo = uidClienteNuevo;
	}

	@Column(name = "uidCambioContrasena", length = 45)
	public String getUidCambioContrasena() {
		return uidCambioContrasena;
	}
	public void setUidCambioContrasena(String uidCambioContrasena) {
		this.uidCambioContrasena = uidCambioContrasena;
	}	
		
}
